﻿using System;
using System.Collections.Generic;

namespace WiMo.Games.Menus
{
    public enum Direction
    {
        Top,
        Left,
        Right,
        Bottom,
        None
    }

    public interface IMenuComponent : IGameComponent 
    {
        event EventHandler<SelectedMenuEventArgs> MenuSelected;

        Color FrameColor {get; set;}
        Color TitleColor { get; set; }
        Color BackgroundColor { get; set; }

        Color MenuItemColor { get; set; }
        Color DisabledMenuItemColor { get; set; }
        Color SelectedItemBorderColor { get; set; }
        Color SelectedItemBackground { get; set; }
        Color SelectedItemColor { get; set; }
             
        ISpriteFont TitleFont { get; set; }
        ISpriteFont MenuItemFont { get; set; }

        string Title {get; set;}

        List<IMenu> MenuItems { get; set; }

        IMenu AddMenu(string text, int menuId);
        IMenu AddMenu(string text, IMenuComponent menu);
        void Reset();
        void Show();
        void Hide();
        void Show(Direction showFrom);
        void Hide(Direction hideTo);
        void Up();
        void Down();
        void SelectByIndex(int menuIndex);
        void SelectByMenuId(int menuId);       
    }
}
